import request from '@/config/axios'
import type { Dayjs } from 'dayjs'

/** 报表消息推送配置信息 */
export interface ReportConfig {
  id: number // id
  reportId?: number // 父表id
  name?: string // 名称
  targetValue: number // 目标值
  dutyUserId: string // 负责人
  dutyUserName: string // 负责人
}

/** 消息推送配置信息 */
export interface ReportViewNew {
  id: number // id
  name?: string // 名称
  url: string // 链接
  parentId?: number // 父id
  sort?: number // 显示顺序
  title: string // 副标题
  icon: string // 图标
  color: string // 背景颜色
  reportconfigs?: ReportConfig[]
}

// 消息推送配置 API
export const ReportViewNewApi = {
  // 查询消息推送配置分页
  getReportViewNewPage: async (params: any) => {
    return await request.get({ url: `/business/report-view-new/page`, params })
  },

  // 查询消息推送配置详情
  getReportViewNew: async (id: number) => {
    return await request.get({ url: `/business/report-view-new/get?id=` + id })
  },

  // 新增消息推送配置
  createReportViewNew: async (data: ReportViewNew) => {
    return await request.post({ url: `/business/report-view-new/create`, data })
  },

  // 修改消息推送配置
  updateReportViewNew: async (data: ReportViewNew) => {
    return await request.put({ url: `/business/report-view-new/update`, data })
  },

  // 删除消息推送配置
  deleteReportViewNew: async (id: number) => {
    return await request.delete({ url: `/business/report-view-new/delete?id=` + id })
  },

  /** 批量删除消息推送配置 */
  deleteReportViewNewList: async (ids: number[]) => {
    return await request.delete({
      url: `/business/report-view-new/delete-list?ids=${ids.join(',')}`
    })
  },

  // 导出消息推送配置 Excel
  exportReportViewNew: async (params) => {
    return await request.download({ url: `/business/report-view-new/export-excel`, params })
  },

  // ==================== 子表（报表消息推送配置） ====================

  // 获得报表消息推送配置列表
  getReportConfigListByReportId: async (reportId) => {
    return await request.get({
      url: `/business/report-view-new/report-config/list-by-report-id?reportId=` + reportId
    })
  }
}
